Computer networks, such as those provided at a workplace, university, or other organization, are often configured to allow users to gain network access remotely through virtual private networks (VPNs), customized network settings, and/or other technologies. To gain access, users are generally required to authenticate to the remote network. Authentication may involve users providing various authentication factors, such as passwords, token codes, and personal identification numbers (PINs). Remote networks generally include, or have access to, an authentication server. The authentication server receives authentication requests from users and either grants or denies access, based on whether authentication factors provided with the requests match expected values. For added security, networks often require that multiple authentication factors be entered and verified before access can be granted.
A common two-factor authentication scheme involves both a token code and a PIN. The token code, also known as a one-time password, or “OTP,” is generated automatically, such as by a portable device that a user has in his or her possession. The PIN is a number, or possibly an alpha-numeric string, that the user has memorized. Both the token and the PIN have been registered previously in connection with the user at the authentication server. The user enters both the token code and the PIN in one or more fields of a network login screen on the user's computer. Access to the remote network is only granted to the user's computer if both the token code (something the user has) and the PIN (something the user knows) can be verified. An example of a portable token is SecureID®, which is available from RSA Security Inc. of Bedford, Mass.
Recently, software has been introduced to perform the functions of tokens on smart mobile devices, such as smart phones, PDAs, and tablets. In one example, a user of a computer wishing to access a remote network enters his or her PIN into a field displayed on the user's mobile device. The mobile device sends the PIN to an authentication server. If the PIN matches an expected value, the authentication server sends back a signal to unlock the mobile device to allow the mobile device to display a token code. The user can then transfer the token code manually to the computer to enable the computer to gain access to the remote network.